home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / tex / mf / inputs / dc / dxrligtb.mf < prev    next >
Text File  |  1994-04-12  |  5KB  |  209 lines

  1. % This is DXRLIGTB.MF in text format, as of March 24, 1992
  2. %
  3. % DC fonts Version 1.1 (prerelease of EC fonts)
  4. %
  5. %          [ heavily borrowed from the Computer Modern Roman family of
  6. %            fonts by D. E. Knuth ]
  7. %
  8. % Content:
  9. %
  10. %  ligtable and kerning programs for roman style fonts
  11. %
  12. %
  13. %
  14. %  This file should not be called for monospaced fonts !
  15. %
  16. %
  17. %  The following ligatures are integrated:
  18. %
  19. %   fi
  20. %   fl
  21. %   ff
  22. %   ffi
  23. %   ffl
  24. %
  25. %   --
  26. %   ---
  27. %
  28. %   >>
  29. %   <<
  30. %
  31. %   ``
  32. %   ''
  33. %   ,,
  34. %
  35.  ligtable
  36.     "f":   "i"=:oct"034",
  37.            "f"=:oct"033",
  38.            "l"=:oct"035",
  39.            "'" kern itc#,
  40.            "?" kern itc#,
  41.            "!" kern itc#,
  42.            ")" kern itc#,
  43.            "]" kern itc#;
  44.  ligtable
  45.     oct"033":       % ff
  46.           "i"=:oct"036",
  47.           "l"=:oct"037",
  48.           "'" kern itc#,
  49.           "?" kern itc#,
  50.           "!" kern itc#,
  51.           ")" kern itc#,
  52.           "]" kern itc#;
  53.  ligtable
  54.     "`":  "`"=:oct"020";
  55.  ligtable
  56.     "'":  "'"=:oct"021",
  57.           "?" kern 2u#,
  58.           "!" kern 2u#;
  59.  ligtable
  60.     "-":  "-" =: oct"025";
  61.  ligtable
  62.     oct"025": "-"=:oct"026";  % "---"  => emdash
  63.  
  64.  ligtable "<": "<" =: oct"023";     % "<<"
  65.  ligtable ">": ">" =: oct"024";     % ">>"
  66.  ligtable ",": "," =: oct"022";     % ",,"
  67. %
  68. %
  69. def lig_o_table (expr k) =
  70.              "o" kern k,  oct"256" kern k, oct"362" kern k, oct"363" kern k,
  71.                           oct"364" kern k, oct"365" kern k, oct"366" kern k,
  72.                           oct"367" kern k
  73. enddef;
  74. %
  75. %
  76. def lig_a_table (expr k) =
  77.            "a" kern k,    oct"241" kern k, oct"242" kern k, oct"340" kern k,
  78.                           oct"341" kern k, oct"342" kern k, oct"342" kern k,
  79.                           oct"343" kern k, oct"344" kern k, oct"345" kern k,
  80.                           oct"346" kern k
  81. enddef;
  82. def lig_c_table (expr k) =
  83.            "c" kern k,   oct"242" kern k, oct"243" kern k, oct"347" kern k
  84. enddef;
  85. %
  86. def lig_e_table (expr k)=
  87.              "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
  88.                          oct"351" kern k, oct"352" kern k, oct"353" kern k
  89. enddef;
  90. def lig_u_table (expr k)=
  91.              "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
  92.                          oct"372" kern k, oct"373" kern k, oct"374" kern k
  93. enddef;
  94. %
  95. def lig_cA_table =
  96.              "A": oct"200": oct"201": oct"300": oct"301": oct"302":
  97.              oct"303": oct"304": oct"305":
  98. enddef;
  99. %
  100. %
  101. %
  102. %
  103.  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
  104.  ligtable
  105.       "k":
  106.       if serifs: "v":    lig_a_table(-u#), fi
  107.       "w": lig_e_table(k#),
  108.            lig_a_table(k#),
  109.            lig_o_table(k#),
  110.            lig_c_table(k#);
  111.  
  112.  ligtable
  113.       "P":   "A" kern kk#,
  114.       "y":   lig_o_table(k#),
  115.              lig_e_table(k#),
  116.              lig_a_table(k#),
  117.              "." kern kk#,
  118.              "," kern kk#;
  119.  ligtable
  120.       "F":
  121.       "V":
  122.       "W":  if serifs:
  123.              "o" kern kk#,
  124.              "e" kern kk#,
  125.              "u" kern kk#,
  126.              "r" kern kk#,
  127.              "a" kern kk#,
  128.              "A" kern kkk#,
  129.             else:
  130.              "o" kern k#,
  131.              "e" kern k#,
  132.              "u" kern k#,
  133.              "r" kern k#,
  134.              "a" kern k#,
  135.              "A" kern kk#,
  136.             fi
  137.        "K":
  138.        "X":  "O" kern k#,
  139.              "C" kern k#,
  140.              "G" kern k#,
  141.              "Q" kern k#;
  142.  ligtable
  143.        "T":    "y" kern if serifs: k# else: kk# fi,
  144.        "Y":    "e" kern kk#,
  145.                "o" kern kk#,
  146.                "r" kern kk#,
  147.                "a" kern kk#,
  148.                "u" kern kk#,
  149.                "A" kern kk#;
  150.  ligtable
  151.        "O":
  152.        "D":    "X" kern k#,
  153.                "W" kern k#,
  154.                "A" kern k#,
  155.                "V" kern k#,
  156.                "Y" kern k#;
  157.  if serifs:
  158.  ligtable
  159.        "h":
  160.        "m":
  161.        "n":
  162.                "t" kern k#,
  163.                lig_u_table(k#),
  164.                "b" kern k#,
  165.                "y" kern k#,
  166.                "v" kern k#,
  167.                "w" kern k#;
  168.  ligtable
  169.        "c":    "h" kern k#,
  170.                "k" kern k#;
  171.  fi
  172.  ligtable
  173.        "o":
  174.        "b":
  175.        "p":    lig_e_table(-k#),
  176.                lig_o_table(-k#),
  177.                "x" kern k#,
  178.                "d" kern -k#,
  179.                lig_c_table(-k#),
  180.                "q" kern -k#,
  181.        "a":   if serifs:
  182.                "v" kern k#,
  183.                "j" kern u#,
  184.               else:
  185.                "r" kern k#,
  186.               fi
  187.        "t":   "y" kern k#,
  188.        "u":   "w" kern k#;
  189.  ligtable
  190.        lig_cA_table
  191.        if serifs: "R": fi
  192.               "t" kern k#,
  193.               "C" kern k#,
  194.               "O" kern k#,
  195.               "G" kern k#,
  196.               "U" kern k#,
  197.               "Q" kern k#,
  198.        "L":
  199.        "T" kern kk#,
  200.        "Y" kern kk#,
  201.        "V" kern kkk#,
  202.        "W" kern kkk#;
  203.  ligtable
  204.        "g":   "j" kern -k#; % logjam
  205.  ligtable
  206.        "I":   "I" kern -k#; % Richard III
  207.  
  208. endinput;
  209.